package leetcode.editor.cn;
//2021-08-05 17:02:54	获取当前时间
//给你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。 
//
// 回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。例如，121 是回文，而 123 不是。 
//
// 
//
// 示例 1： 
//
// 
//输入：x = 121
//输出：true
// 
//
// 示例 2： 
//
// 
//输入：x = -121
//输出：false
//解释：从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
// 
//
// 示例 3： 
//
// 
//输入：x = 10
//输出：false
//解释：从右向左读, 为 01 。因此它不是一个回文数。
// 
//
// 示例 4： 
//
// 
//输入：x = -101
//输出：false
// 
//
// 
//
// 提示： 
//
// 
// -231 <= x <= 231 - 1 
// 
//
// 
//
// 进阶：你能不将整数转为字符串来解决这个问题吗？ 
// Related Topics 数学 
// 👍 1572 👎 0


//leetcode submit region begin(Prohibit modification and deletion)
class Solution_回文数 {
    public boolean isPalindrome(int x) {
        //是负数为false
        if(x < 0) {
            return false;
        }
        //一位数是true
        if(x >= 0 && x < 10) {
            return true;
        }
        //位数为偶数的，后半部分倒序后和前半部分一样
        String s = String.valueOf(x);
        if(s.length() % 2 == 0) {
            String s1 = s.substring(0, s.length() / 2);
            String s2 = s.substring(s.length() / 2);
            String newS2 = "";
            for (int length = s2.length() - 1; length >= 0; length--) {
                newS2 += s2.charAt(length);
            }
            if(s1.equals(newS2)) {
                return true;
            }
            return false;
        } else {
            //位数为奇数的，中间数之前的和之后的倒序相同
            String s1 = s.substring(0, s.length() / 2);
            String s2 = s.substring(s.length() / 2 + 1);
            String newS2 = "";
            for (int length = s2.length() - 1; length >= 0; length--) {
                newS2 += s2.charAt(length);
            }
            if(s1.equals(newS2)) {
                return true;
            }
            return false;
        }

    }
}
//leetcode submit region end(Prohibit modification and deletion)
